package com.cskaoyan.javase.array._0introduction;

/**
 * 数组的引入
 *
 * 假设一个班上有80个人，现在需要统计，某一门课程的平均成绩，是否需要定义80个变量？
 * 编写一个程序，需要储存12个月份的天数，是否要定义12个变量呢？
 * 编写一个扑克程序，需要储存54张扑克的信息，是否要定义54个变量？
 * 如果程序需要储存上成千上万的数据，程序员是不是也要逐一定义成千上万个变量呢？
 *
 * 很明显，如果程序需要多少数据，就要定义多少个变量，也太过于麻烦了，并且多个变量单独存在没有任何关联，也不方便管理和维护。程序的可维护性是很重要的，甚至可以当成程序是否优秀的最核心指标之一。因为需求的变更是很多的，一旦程序维护性很差，抗修改能力差，这个程序必然是失败的。
 *
 * 这样就好比，去超市购物，谁有人会把东西一个一个带回家。购物需要"袋子"装东西，Java变量也需要一个容器来存放它们。
 * Java的容器有很多，最基本的容器就是数组（Array），定义一个数组，就可以存储很多数据。Java的高级容器就是集合（Collection），相对而言，我们几乎都会直接使用高级容器集合。
 *
 *
 * 思考：
 * 数组中的数据是胡乱的摆放在一起吗？数组对装在里面的数据有什么要求吗？
 * 显然不是的，数组中的元素（数据）不是胡乱摆放的，而是有顺序的，数组是有顺序的。数组给数组中每个存储单元，都有编号，这个编号是从0开始的，最大值是长度-1.这种编号，专业术语叫"下标"或者"索引"(index)
 * 数组中的元素是连续的
 *
 * 数组中的元素必须是相同数据类型的,数组中的元素的数据类型就是数组的数据类型,比如int类型数组,就装int类型元素
 * 数组中的元素可以是基本数据类型,也可以是引用数据类型,只要它们都是同一个类型就可以了.
 * 数组仍然也是一个变量,它是一种引用数据类型变量.
 *
 * 所以数组是可以套娃的,数组中可以继续存数组.(多维数组)数组中如果直接存某种非数组的元素,称之为一维数组
 * 定义: 数组是存储多个，具有相同数据类型的数据元素的有序容器（集合）。
 *
 * @since 09:53
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        double score1 = 100;
        double score2 = 80;
        double score3 = 70;

        int[][] arr = new int[2][2];
    }
}
